package com.xy.job.admin.enums

import com.xy.job.admin.core.notify.INotifySender
import com.xy.job.admin.core.notify.NotifierSenders
import com.xy.job.admin.core.notify.NotifyChannel
import com.xy.job.admin.core.notify.NotifyContext
import com.xy.job.core.common.IDict
import kotlin.reflect.KClass

enum class NotifyChannelType(
    var channelConfigClass: KClass<out NotifyChannel>,
    var notifyContentClass: KClass<out NotifyContext>,
    var notifierClass: KClass<out INotifySender>,
) : IDict {

    DING_TALK_ROBOT(
        channelConfigClass = NotifyChannel.DingTalkRobot::class,
        notifyContentClass = NotifyContext.DingTalkRobot::class,
        notifierClass = NotifierSenders.DingTalkRobot::class
    ),

    Email(
        channelConfigClass = NotifyChannel.Email::class,
        notifyContentClass = NotifyContext.Email::class,
        notifierClass = NotifierSenders.DingTalkRobot::class
    ),
    ;
}